#ifndef M_MODBUS_TML_H
#define M_MODBUS_TML_H

#include "common_types.h"
#include "m_modbus_comm.h"
#include "modbus/modbus.h"

// -------------------------- 公开接口（自动配置/连接/断开） --------------------------
/**
 * @brief 加载设备配置模板（从模板文件）
 * @return 成功返回模板数量，失败返回-1
 */
int m_modbus_load_templates(void);

/**
 * @brief 自动配置设备（根据设备ID匹配模板，自动注册寄存器）
 * @param dev 在线设备信息
 * @return 成功返回模板索引，失败返回-1（使用默认模板）
 */
int m_modbus_auto_config(modbus_online_dev_t *dev);

/**
 * @brief 自动连接指定设备（从连接池创建/复用连接）
 * @param dev 在线设备信息
 * @return 成功返回连接节点索引，失败返回-1
 */
int m_modbus_auto_connect(modbus_online_dev_t *dev);

/**
 * @brief 启动心跳监控线程（自动检测连接状态，触发重连/断开）
 * @return 成功返回0，失败返回-1
 */
int m_modbus_heartbeat_start(void);

/**
 * @brief 停止心跳监控线程
 */
void m_modbus_heartbeat_stop(void);

/**
 * @brief 自动断开指定设备连接（释放资源）
 * @param dev 设备信息
 * @return 成功返回0，失败返回-1
 */
int m_modbus_auto_disconnect(modbus_online_dev_t *dev);

/**
 * @brief 获取设备连接状态
 * @param dev 设备信息
 * @return 连接状态（conn_status_t），失败返回-1
 */
int m_modbus_get_conn_status(modbus_online_dev_t *dev);

#endif //M_MODBUS_TML_H
